package japicmp.util;
import javassist.CannotCompileException;
import javassist.CtClass;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.file.Path;
import java.util.jar.Attributes;
import java.util.jar.JarEntry;
import java.util.jar.JarOutputStream;
import java.util.jar.Manifest;
public class JarUtil {
public static void createJarFile(Path jarFileName, CtClass... ctClasses) throws IOException, CannotCompileException {
Manifest manifest = new Manifest();
manifest.getMainAttributes().put(Attributes.Name.MANIFEST_VERSION, "1.0");
try (JarOutputStream jarStream = new JarOutputStream(new FileOutputStream(jarFileName.toString()), manifest)) {
for (CtClass ctClass : ctClasses) {
JarEntry entry = new JarEntry(ctClass.getSimpleName() + ".class");
jarStream.putNextEntry(entry);
byte[] bytecode = ctClass.toBytecode();
jarStream.write(bytecode, 0, bytecode.length);
jarStream.closeEntry();
}
}
}
}